public class LeetCode209_MinLenOfSubArr {
//    public static void main(String[] args) {
//        System.out.println(minSubArrayLen(7, new int[]{2,3,1,2,4,3}));
//    }
//    public static int minSubArrayLen(int target, int[] nums) {
//        int left = 0;
//        int right = 0;
//        int sum = 0;
//        while (right < nums.length) {
//            while (sum < target && right < nums.length) {
//                sum += nums[right++];
//            }
//            while (sum >= target && right < nums.length) {
//                sum -= nums[left++];
//            }
//        }
//
//        if (left == 0) {
//            return 0;
//        }
//
//        while (sum >= target) {
//            sum -= nums[left++];
//        }
//
//        return right - left + 1;
//    }

//    public int minSubArrayLen(int target, int[] nums) {
//        int left = 0;
//        int right = 0;
//        int sum = 0;
//        int len = nums.length + 1;
//        while (right < nums.length) {
//            sum += nums[right++];
//            while (sum >= target) {
//                len = Math.min(len, right - left);
//                sum -= nums[left++];
//            }
//        }
//
//        return len == nums.length + 1 ? 0 : len;
//    }

    public static void main(String[] args) {
        System.out.println(minSubArrayLen(7, new int[]{2, 3, 1, 2, 4, 3}));
    }

    public static int minSubArrayLen(int target, int[] nums) {
        int n = nums.length;
        int len = n;
        boolean flag = false;
        for (int i = 0; i < n; i++) {
            int sum = 0;
            for (int j = i; j < n; j++) {
                if (sum >= target) {
                    flag = true;
                    len = Math.min(len, j - i);
                    break;
                }
                sum += nums[j];
            }
        }
        return flag ? len : 0;
    }
}
